package cc.cc4414.cc02.system.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import cc.cc4414.cc02.system.entity.Authority;

/**
 * @author cc 2018年7月17日
 */
public interface AuthorityService {
	/**
	 * 查询所有权限信息
	 * 
	 * @return 所有权限
	 */
	List<Authority> findAll();

	/**
	 * 新增权限
	 * 
	 * @param authority
	 *            新增的权限
	 */
	void save(Authority authority);

	/**
	 * 通过权限id删除权限
	 * 
	 * @param authorityId
	 *            权限id
	 */
	@Transactional
	void delete(Long authorityId);

	/**
	 * 修改指定id权限的描述
	 * 
	 * @param authorityId
	 *            权限id
	 * @param description
	 *            修改后的描述
	 */
	void updateDescription(Long authorityId, String description);

	/**
	 * 通过权限名查询权限
	 * 
	 * @param name
	 *            权限名
	 * @return 查询到的权限
	 */
	Authority findByName(String name);
}
